/*
 * 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。
 * 
 * 欢迎到知启蒙网站（https://www.zhiqim.com）购买正版软件，知启蒙还提供许多开源框架和软件。
 * 
 * 1、本软件产品所有源代码受《中华人民共和国著作权法》和其他有关法律、法规的保护，其所有知识产权归湖南知启蒙科技有限公司所有；
 * 2、禁止复制和修改。不得复制修改、翻译或改编本软件所有源代码，或者基于本软件产品创作衍生作品；
 * 3、禁止进行逆向工程。不得对本软件的源代码进行逆向工程、反编译或试图以其他方式发现软件的源代码；
 * 4、个别授权：如需进行商业性的销售、复制、分发，包括但不限于软件销售、预装、捆绑等，必须获得知启蒙的书面授权和许可；
 * 5、保留权利：本注释未明示授权的其他一切权利仍归知启蒙所有，任何人使用其他权利时必须获得知启蒙的书面同意。
*/
package net.redxyz.repost.manage.action.user;

import net.redxyz.top.dbo.user.User;

import org.zhiqim.httpd.HttpRequest;
import org.zhiqim.httpd.context.core.Action;
import org.zhiqim.kernel.paging.PageResult;
import org.zhiqim.kernel.util.Validates;
import org.zhiqim.orm.ORM;
import org.zhiqim.orm.dbo.Selector;

/**
 * 客户信息列表和查询
 *
 * @version v1.0.0 @author zouzhigang 2014-3-21 新建与整理
 */
public class UserListAction implements Action
{
    public void execute(HttpRequest request) throws Exception
    {        
        request.setResponsePrivateCache();
        int currentPage = request.getParameterInt("page", 1);
        int pageSize = 10;

        String nick = request.getParameter("nick");
        int nickLike = request.getParameterInt("nickLike");
        String type = request.getParameter("type");
        int versionNo = request.getParameterInt("versionNo");
        
        String createDate = request.getParameter("createDate");
        String endDate = request.getParameter("endDate");
        
        int level = request.getParameterInt("level");
        int userStatus = request.getParameterInt("userStatus");
        int orderBy = request.getParameterInt("orderBy");
        
        Selector sel = new Selector();
        if (nickLike == -1)
            sel.addMaybe("nick", nick);
        else
            sel.addMaybeLike("nick", nick);
        sel.addMaybe("type", type);
        sel.addMaybe("versionNo", versionNo);
        if (Validates.isNotEmpty(createDate))
        {
            sel.addMaybeThenGE("createTime", createDate+" 00:00:00");
            sel.addMaybeThenLE("createTime", createDate+" 23:59:59");
        }
        sel.addMaybe("endDate", endDate);
        
        sel.addMaybe("level", level);
        sel.addMaybe("userStatus", userStatus);
        
        if (sel.getConditionList() == null)
        {//如果没有一个条件，加上userId作索引条件
            sel.addMaybeNotEqual("userId", "0");
        }
        
        switch (orderBy)
        {
        case 1:sel.addOrderbyAsc("createTime");break;
        case 2:sel.addOrderbyDesc("lastLoginTime");break;
        case 3:sel.addOrderbyAsc("lastLoginTime");break;
        case 4:sel.addOrderbyDesc("level");sel.addOrderbyDesc("createTime");break;
        case 5:sel.addOrderbyAsc("level");sel.addOrderbyDesc("createTime");break;
        case 6:sel.addOrderbyDesc("endDate");sel.addOrderbyDesc("createTime");break;
        case 7:sel.addOrderbyAsc("endDate");sel.addOrderbyDesc("createTime");break;
        case 0://0,default默认创建到序
        default:
            sel.addOrderbyDesc("createTime");break;
        }
        
        PageResult<User> pageResult = ORM.table().page(User.class, currentPage, pageSize,sel);
        pageResult.addConditionMap(request.getParameterMap());
        
        request.setAttribute("pageResult", pageResult);
    }

}
